﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Windows.Forms.Design;
//using System.ComponentModel;
//using System.Windows.Forms;
//using System.Drawing.Design;

//namespace MySQLStudio.ComponentModel
//{
//    public class UIListBoxEditor : UITypeEditor
//    {
//         IWindowsFormsEditorService _wfes = null;
//         private ListBox _control  = null;
//         private CustomItemList _list = null;
   
//        public override UITypeEditorEditStyle GetEditStyle(
//            ITypeDescriptorContext context)
//        {
//            return UITypeEditorEditStyle.DropDown; 
//        }
 
//        public override object EditValue(ITypeDescriptorContext context,
//                                         IServiceProvider provider,
//                                         object value)
//        {
   
//                _wfes = provider.GetService(typeof(IWindowsFormsEditorService)) 
//                             as IWindowsFormsEditorService;                                   
 
//            if (_wfes == null) { return value; }
//            if (value == null) { return value; }
 
//            _control = new ListBox();
//            _control.Name = "listbox1";
//            _control.Height = 325;
//            _control.Width = 300;
//            _control.Dock = DockStyle.Fill; 
//            _control.SelectedIndexChanged += new EventHandler(ListItemSelected);
      
//            _list = (CustomItemList)value;
//            _control.Height = _list.Height;
//            _control.Width = _list.Width;

//            if (_list.EnableMultiSelect)
//            {
//                _control.SelectionMode = SelectionMode.MultiExtended;
//             }
                
//             for (int i = 0; i < _list.Items.Count; i++)
//             {
//                    _control.Items.Add(_list.Items[i]);
//                    _control.SetSelected(i, _list.Items[i].Selected);
//              }
  
//            _wfes.DropDownControl(_control);

//            RefreshList();
      
//            value = _list;
             
//            return value;
//        }
       
//        private void RefreshList()
//        {
//            CustomItem item = null;

//            _list = new CustomItemList(_list.EnableMultiSelect,_list.Height,_list.Width);
 
//            for (int i = 0; i < _control.Items.Count; i++)
//            {
//                item = (CustomItem)_control.Items[i];
//                item.Selected = _control.GetSelected(i);
//                _list.Items.Add(item);
//            }
//        }
    
//        private void ListItemSelected(object sender,EventArgs e)
//        {
   
//           switch (_control.SelectionMode)
//           {
//               case SelectionMode.MultiExtended:
//               case SelectionMode.MultiSimple:
//                       break;
//               default:
//                     _wfes.CloseDropDown();
//                   break;
//           }

//        }
        
//    }
//}
